package service;

import java.sql.ResultSet;
import java.util.Collection;
import java.util.LinkedList;

import modelo.Usuario;
import repositorio.RepositorioUsuario;

/**
 * 
 * @author klebson lou
 * classe para validar a regra de login no sistema
 */
public class LogarService {
	/**
	 * metodo que valida o login
	 * 
	 * @param CPF_CNPJ
	 * @param senha
	 * @return
	 */
	public Collection<String> verificar(String CPF_CNPJ, String senha) {
		String resposta = "";		
		Usuario usuario = new Usuario();
		Collection<String> user = new LinkedList<String>();
		try {
			boolean validar = false;

			if (CPF_CNPJ.equals("")  || senha.equals("")) {
				resposta = "paginasLogin/paginaErroLogin.jsp";
				user.add(resposta);
				return user;
			}
			RepositorioUsuario rep = new RepositorioUsuario();
			ResultSet rs = rep.consultar(CPF_CNPJ);

			if (rs != null) {
				while (rs.next()) {
					
					usuario.setSenha(rs.getString("senha"));
					usuario.setTipo(rs.getString("tipo"));
					usuario.setNomeUsuario(rs.getString("nomeusuario"));
					usuario.setEmail(rs.getString("email"));

					if (usuario.getSenha().equals(senha)) {
						validar = true;
						break;
					}
				}
				if (validar == true && usuario.getTipo().equalsIgnoreCase("cpf")) {
					resposta = "paginasLogin/paginaFornecedo.jsp";		
					user.add(resposta);					
					user.add(usuario.getNomeUsuario());	
					user.add(usuario.getEmail());
					return user;
					
				}
				else if (validar == true && usuario.getTipo().equalsIgnoreCase("cnpj")) {
					resposta = "paginasLogin/paginaCliente.jsp";	
					user.add(resposta);			
					user.add(usuario.getNomeUsuario());	
					user.add(usuario.getEmail());
					return user;
					}
			}
			if (validar == false) {
				resposta = "paginasLogin/paginaErroLogin.jsp";			
				user.add(resposta);
				return user;
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
		return user;
	}

}
